package validate

import "gorm.io/datatypes"

// 视频返回数据
type VideoMetadata struct {
	MediaMetadata
	SourcePath   string `json:"source_path"`
	OutThumbPath string `json:"out_thumb_path"`
	OutVideoPath string `json:"out_video_path"`
}

type AddMedia struct {
	Md5Name string         `json:"md5_name"`
	Md5     string         `json:"md5"`
	Type    string         `json:"type"`
	Status  string         `json:"status"`
	Param   datatypes.JSON `json:"param"`
	Uuid    string         `json:"uuid"`
}

// 媒体返回数据
type MediaMetadata struct {
	Md5Name    string `json:"md5_name"`
	Md5        string `json:"md5"`
	Folder     string `json:"folder"`
	Type       string `json:"type"`
	Path       string `json:"path"`
	Size       string `json:"size"`
	FileSize   int64  `json:"file_size"`
	Width      int    `json:"width"`
	Height     int    `json:"height"`
	Duration   string `json:"duration"`
	Rate       string `json:"rate"`
	NamePrefix string `json:"name_prefix"`
	Ext        string `json:"ext"`
	Thumb      string `json:"thumb"`
}

type DirectoryParam struct {
	DirectoryType string `json:"directory_type"`
	DirectoryName string `json:"directory_name"`
}

type UploadMedia struct {
	Size string `json:"size" binding:"required"`
}

type TranscodeVideoParam struct {
	Type        string `json:"type"`
	TempPath    string `json:"temp_path"`
	Duration    string `json:"duration"`
	Folder      string `json:"folder"`
	Path        string `json:"path"`
	PathPrefix  string `json:"path_prefix"`
	Md5Name     string `json:"md5_name"`
	Width       int    `json:"width"`
	Height      int    `json:"height"`
	Ext         string `json:"ext"`
	FileSize    int64  `json:"file_size"`
	ImageSize   string `json:"image_size"`
	UseCompress string `json:"use_compress"`
}

type MediaMd5sFilter struct {
	Md5Name string `json:"md5_name" binding:"required"`
}

var (
	SynchronizeToCosNameString = ""
)

type UpdateMediaExtByMd5Name struct {
	Md5Name string `json:"md5_name" binding:"required"`
	Ext     string `json:"ext" binding:"required"`
}
